home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
SGI Varsity Update 1998 August
/
SGI Varsity Update 1998 August.iso
/
docs6.4
/
relnotes
/
ftn90_fe
/
ch4.z
/
ch4
Wrap
Text File
|
1998-07-29
|
16KB
|
462 lines
- 1 -
7.2.1 MIPSpro Fortran 90 Front End Release Notes
- 2 -
4. _C_o_m_p_a_t_i_b_i_l_i_t_y__N_o_t_e_s
When using the MIPSpro Fortran 90 7.2.1 here are
some things regarding compatibility to note.
4.1 _D_i_f_f_e_r_e_n_c_e_s _b_e_t_w_e_e_n _C_r_a_y _F_o_r_t_r_a_n _a_n_d
_M_I_P_S_p_r_o _7._2._1 _F_o_r_t_r_a_n _9_0
4.1.1 _M_o_d_e_l__d_i_f_f_e_r_e_n_c_e_s The model for the
CF90 REAL(KIND=16) data type on CRAY T90 systems
that support IEEE floating-point arithmetic is
different from the model for the MIPSpro 7.2.1
Fortran 90 compiler.
The internal size of INTEGER(KIND=1)
INTEGER(KIND=2), LOGICAL(KIND=1), and
LOGICAL(KIND=2) on the MIPSpro 7.2.1 Fortran 90
compiler is one and two bytes, respectively. The
CF90 compiler treats these kind type parameters
as 4 byte entities on MPP platforms. On PVP
platforms they are 8 byte entities.
The default sizes of the MIPSpro 7.2.1 Fortran
90 integer, real, and logical data types are 4
bytes. This differs from the CF90 default of 8
bytes. The default size of the MIPSpro 7.2.1
Fortran 90 double precision type is 8 bytes
compared to the 16 byte default of the CF90.
The default data type sizes for the MIPSpro
7.2.1 Fortran 90 compiler may be incorrect for
routines such as IRTC(3I) and SHMEM.
The size of pointers in MIPSpro 7.2.1 Fortran 90
is either 4 bytes(default) or 8 bytes depending
on whether -n32 -or -64 is used on the command-
line. This differs from the CF90 default of
64-bits.
The MIPSpro 7.2.1 Fortran 90 compiler does not
support Cray character pointers.
Pointer arithmetic is in default numeric storage
units when using the CF90 compiler. Pointer
arithmetic is in bytes when using the MIPSpro
7.2.1 Fortran 90 compiler.
For more information on the model, see the
model(3I) man page.
- 3 -
4.1.2 _F_o_r_t_r_a_n__9_0__s_t_a_t_e_m_e_n_t__d_i_f_f_e_r_e_n_c_e_s When
using the MIPSpro 7.2.1 Fortran 90 compiler, the
execution of the STOP statement does not cause
the word STOP to be written to stdout unless
there is an argument to the STOP statement. The
CF90 compiler always writes STOP to stdout.
When using the MIPSpro 7.2.1 Fortran 90
compiler, the initialization of entities in a
common block in a DATA statement can only be
done in one program unit. That is, if a common
block contains two variables initialized in a
DATA statement, those DATA statements must be in
one program unit. With the CF90 compiler, each
variable can be initialized in DATA statements
in separate program units. This follows a
stricter interpretation of the Fortran 90 ISO
standard.
4.1.3 _F_u_n_c_t_i_o_n_s__a_n_d__p_r_o_c_e_d_u_r_e_s The CF90
typeless functions (such as MASK(3I),
SHIFTL(3I), SHIFTR(3I), SHIFT(3I), CVMGT(3I),
and so on) are typed as integer functions by the
MIPSpro 7.2.1 Fortran 90 compiler. Conversion
occur in expressions involving a mixture of
floating point and integer functions. When
called by the CF90 compiler, these functions are
typeless and no conversion occurs when there is
a mixture of floating point and these typeless
functions. Vfunctions are not supported by the
MIPSpro 7.2.1 Fortran 90 compiler.
4.1.4 _M_o_d_u_l_e_s When using the MIPSpro 7.2.1
Fortran 90 compiler, the compilation of Fortran
90 modules creates a <file>.mod for each module
in the source file. When using the CF90
compiler, compiling modules creates one <file>.o
that contains all the Fortran 90 modules in the
source file.
4.1.5 _I_/_O__l_i_b_r_a_r_y Direct access formatted
output files cannot be read as sequential
formatted files by MIPSpro 7.2.1 Fortran 90
programs unless an assign(1) command with
-s unblocked or -F cachea is supplied for the
particular file.
- 4 -
The set of I/O library errors begins at 4000 for
MIPSpro 7.2.1 Fortran 90 programs. The error
numbers begin at 1000 for CF90 programs.
The FILENV environment variable must be set for
MIPSpro 7.2.1 Fortran 90 programs when using the
assign(1) command. For CF90 users, this
environment variable need not be set.
4.1.6 _L_i_b_r_a_r_y__f_u_n_c_t_i_o_n_s__a_n_d__p_r_o_c_e_d_u_r_e_s The
CRI_IEEE_DEFINITIONS module is available for the
MIPSpro 7.2.1 Fortran 90 compiler, but the
preferred name is FTN_IEEE_DEFINITIONS for the
IEEE module and the interface to the IEEE
procedures.
The PXF_DEFINITIONS module is available for the
MIPSpro 7.2.1 compiler to provide the interfaces
to the PXF routines. The FTN_LIB_DEFINITIONS
module is available for the MIPSpro 7.2.1
compiler to provide interfaces to some general
library routines such as FLUSH and ABORT.
The MAXVAL(3I) intrinsic procedure returns
negative infinity for a zero-sized input array
on when called from a MIPSpro 7.2.1 Fortran 90
program and returns -HUGE(3I) when called from a
CF90 program.
The MINVAL(3I) intrinsic procedure returns
positive infinity for a zero-sized input array
on when called from a MIPSpro 7.2.1 Fortran 90
program and returns +HUGE(3I) when called from a
CF90 program.
4.1.7 _M_a_t_h__l_i_b_r_a_r_y The results of the math
routines from the MIPSpro 7.2.1 Fortran 90
compiler may differ from the results returned by
the math routines for the CF90 compiler.
Signaling of errors during references to the
MIPSpro 7.2.1 Fortran 90 compiler math routines
is not turned off. For the CF90 compiler, the
math routines turn off signaling of errors and
detect input data errors through source code
checks.
- 5 -
4.1.8 _D_i_r_e_c_t_i_v_e_s MIPSpro Fortran supports
most, but not all of the !MIC$ directives.
Optional parameters SINGLE and VECTOR are
accepted but ignored. AUTOSCOPE, is not
supported. CASE and ENDCASE are supported but do
not run concurrently in this release.
4.1.9 _P_r_e_p_r_o_c_e_s_s_i_n_g There are two source
preprocessors: cpp and ftpp. ftpp is used by
default for files ending with .F or .F90. No
preprocessing is done for .f or .f90 files. Use
-cpp or -ftpp on the compiler command-line to
force preprocessing of all files regardless of
extension.
4.2 _S_o_u_r_c_e__C_o_d_e__C_o_m_p_a_t_i_b_i_l_i_t_y__w_i_t_h__M_I_P_S_p_r_o__7_._1
The MIPSpro 7.2.1 compiler is source code
compatible with MIPSpro 7.2 and earlier F90
compilers, with one exception: The VAX Fortran
%LOC intrinsic function (MIPSpro 7.1) has been
replaced with the LOC intrinsic function.
4.2.1 _O_b_j_e_c_t__C_o_d_e__C_o_m_p_a_t_i_b_i_l_i_t_y The MIPSpro
7.2.1 compiler is object code compatible with
MIPSpro 7.2 but is NOT object code compatible
with MIPSpro 7.1 and earlier F90 compilers.
Consequently, you must recompile all of the
source files in your application if they were
previously compiled with the MIPSpro 7.1 (or
earlier) compiler. Module files (.kmo files)
produced by earlier versions of the F90 compiler
(ie: 7.1) are not compatible with the 7.2.1
compiler. In addition, as of the 7.2 compiler,
modules files have a .mod suffix.
4.2.2 _L_i_s_t__D_i_r_e_c_t_e_d__I_n_p_u_t_/_O_u_t_p_u_t__F_o_r_m_a_t_t_i_n_g A
new set of assign command options allow the
program to get a form of list-directed output
that is closer to the F77 form but is not
exactly the same. With the following assign
command, the comma separator, repeat counts, and
variable field lengths may be changed. The "U"
option changes the S, W, and y options. The "-S
on" option suppresses use of a comma as a
separator. The "-W on" option suppresses
- 6 -
compressed field width. The "-y on" option
suppresses repeat counts. The "-U on" option
can be specified first and then one or more of
the other three can be changed individually.
Thus, "assign -U on -W off g:sf" specifies that
all sequentially formatted files will use a
comma as a separator and will provide repeat
counts for repeated values, but will use not
compress the field width for list-directed
output.
The form of the PRINT statement with "assign -U on g:sf" is:
1 1 1 2 2 3 0.3333333 0.3333333333333333
3.333333333333333333333333333333E-001
There are no differences in list-directed input.
4.2.3 _D_i_f_f_e_r_e_n_c_e_s _i_n _C_o_m_p_i_l_e-_T_i_m_e _O_p_t_i_o_n_s
The MIPSpro 7.2.1 compiler differs from
MIPSpro 7.1 in the compile-time options that it
supports. In particular, several optimization
option control groups such as -GCM, -SWP and
-sopt are no longer supported. The MIPSpro 7.2.1
compiler also differs from 7.1 in the default
values of variables For more information, please
refer to the _f_9_0(1) man pages.
4.2.4 _N_e_w _D_e_f_a_u_l_t _A_B_I'_s _f_o_r -_m_i_p_s_3 _a_n_d -_m_i_p_s_4
_C_o_m_p_i_l_a_t_i_o_n_s The MIPSpro 7.2.1(BETA) compiler
will default to the n32 ABI for -mips3 or -mips4
compilations that do not specify the ABI on the
command line except on R8000 based systems which
default to the 64-bit ABI. You can specify a
different ABI for your compilation in three
ways:
+o By using the ABI specifier on the command
line (i.e %cc -64 -mips3 foo.c)
+o By using the SGI_ABI environment variable
(i.e. %setenv SGI_ABI -64)
- 7 -
+o By using a Defaults specification file (See
below).
For more information, please check the _f_9_0(1)
man pages.
4.2.5 _D_e_f_a_u_l_t_s__S_p_e_c_i_f_i_c_a_t_i_o_n__F_i_l_e_s The MIPSpro
7.2.1(BETA) compiler provides a new method by
which the user can customize the Application
Binary Interface (ABI), instruction set
architecture (ISA) and processor type used in
compilations where they are not explicitly
specified. Under this method, the
COMPILER_DEFAULTS_PATH environment variable can
be set to a colon separated list of paths where
the compiler will look for a _c_o_m_p_i_l_e_r._d_e_f_a_u_l_t_s
file. If no _c_o_m_p_i_l_e_r._d_e_f_a_u_l_t_s file is found or
if the environment variable is not set, the
compiler looks for /_e_t_c/_c_o_m_p_i_l_e_r._d_e_f_a_u_l_t_s. If
that file is not found either, the compiler
resorts to the built-in defaults described in
the _f_9_0(1)man pages and above. For a
description of the specification format of this
file, please refer to the _f_9_0(1)man pages.
4.3 _C_o_m_p_a_t_i_b_i_l_i_t_y__w_i_t_h__F_o_r_t_r_a_n_7_7_,__C_,__a_n_d__C_+_+
MIPSpro Fortran 90 7.2.1 is object compatible
with C and C++ and F77. However, if objects
compiled with f77 and f90 perform I/O to the
same unit, (with the exception of unit *) the
f77 object must be compiled using the -craylibs
option.